Numerically controlled (NC) milling involves various techniques for removing material (“milling” or “cutting”) from a workpiece to create an object of a particular shape and with defined dimensions. In NC milling, a milling machine or machine tool generally drives one or more cutting tools along a programmed path, known as a toolpath. By driving the cutting tool or tools along the toolpath, the workpiece is transformed from some initial state (the “initial workpiece”) to a final state (the “final workpiece”).
Machine tools are often classified according to the number of degrees of freedom, or axes, along which a cutting tool can be driven. FIG. 1 is an angled-view schematic diagram illustrating an example of a machine tool 100. The machine tool 100 may be able to move a cutting tool 108 up and down along a vertical axis 106, and at the same time move a table 110 holding a workpiece (not illustrated) along two horizontal axes 102 and 104, making it a 3-axis machine tool. A 3-axis toolpath intended for such a machine might include a series of x, y, and z coordinates which instruct the machine tool to move accordingly along the horizontal and vertical axes.
More advanced machine tools include not only linear axes such as the horizontal and vertical axes just described, but also rotational axes which control the orientation of the tool with respect to the workpiece. FIG. 2 is an angled-view schematic diagram illustrating an example of a 5-axis milling machine tool 200. In addition to the two horizontal linear axes 202 and 204 (the x-axis and the y-axis, respectively), and a single vertical linear axis 206 (the z-axis), the machine 200 might enable a workpiece (not illustrated) to rotate 208 around the z-axis and the cutting tool 212 to rotate 210 around the x-axis. Adding the two rotary axes 208 and 210 to the three linear axes 202, 204, and 206 makes it a 5-axis machine tool. A 5-axis toolpath running on such a machine tool may vary both the cutter position and the angle of the cutter with respect to the workpiece.
Different machine tools may have more linear or rotational axes, and the axes may be configured in different ways. For example, instead of rotating 208 the workpiece on a table as in FIG. 2, the cutting tool 212 might be held in a robot arm that can rotate around two different axes. However, in general, when there are both linear and rotational degrees of freedom present in a toolpath, it is referred to by the industry as a multi-axis toolpath. Driving a cutting tool along a multi-axis toolpath is known as multi-axis milling. Regardless of the actual kinematics of the machine tool, it is often easier to think of the workpiece as being fixed and the cutter moving and tilting around the workpiece. FIG. 3 is a side-view schematic diagram illustrating a milling cutter tool 300 tilted at an angle with respect to the vertical. The location of the cutter tip 302 is specified by (x, y, z) coordinates, and the direction of the cutter axis 304 is defined by a unit vector (i, j, k). This convention is adopted herein.
Multi-axis milling is widely used in industry, but it is often time-consuming to create multi-axis toolpaths, and difficult to create multi-axis toolpaths that remove large amounts of material efficiently. As a result, much of the material is commonly removed from a workpiece using 3-axis motion (in which the rotational axes are kept fixed) and afterwards a sequence of multi-axis toolpaths can be used to remove the material that the 3-axis motion could not reach. Unfortunately, creating this sequence of toolpaths is often time-consuming, and the multi-axis toolpaths themselves are often inefficient, largely because the 3-axis motion that removes the bulk of the material leaves behind material that does not closely represent the net shape of the part, which leaves uneven amounts of material to be removed with the multi-axis toolpaths.
Much of the difficulty in creating multi-axis toolpaths is due to the challenging problem of determining the tool axis vectors (i, j, k) at each point along the toolpath. One possible choice is to make the tool axis direction parallel to the surface normal as the cutter moves along the workpiece. This is sometimes referred to as “end-cutting.” FIG. 4 is a side-view diagram illustrating a milling cutter performing a multi-axis end-cutting operation by keeping the tool axis normal to the curved surface of the workpiece 402 at positions 404a and 404b. A variation on this scheme is to set the tool axis vector at a fixed lead or lag angle to the normal as it moves along a toolpath. Another choice is to set the tool axis direction so that the side of the tool is parallel to a wall of the workpiece. Such an operation is referred to as “flank milling” or “swarf milling.” FIG. 5 is an angled-view diagram illustrating a milling cutter performing a multi-axis flank milling operation by keeping the tool axis in the tangent plane of the curved wall 502 of the workpiece. Flank milling can be effective in forming the final shape of the part walls, as a large portion of the cutter is actively engaged in the material, but the tilt of the cutter may change suddenly as the cutter moves along the wall, since the tilt of the tool parallel to the wall is often strongly influenced by preceding and subsequent wall surfaces. These sudden changes in rotation lead to undesirable machining conditions. In the common case where tool motion to remove material away from the walls is generated by duplicating and offsetting the motion along the walls, these undesirable machining conditions can be replicated and even magnified.
Many previous inventions have considered the problem of removing material efficiently using 3-axis motion (see, e.g., U.S. Pat. No. 7,451,013 and U.S. Pat. No. 8,295,972), the disclosures of which are incorporated herein by reference. This type of motion can be converted to multi-axis motion by, for example, projecting it onto a curved surface and setting the tool axis vectors normal to the surface. However, what is missing is the ability to set the tool axis vectors based on other criteria, e.g., the tilt of the workpiece walls. Such a solution offers the ability to remove material rapidly and efficiently, saving machining time and part programming time.